This invention relates to the networking and communication of machines or devices, and, in particular, to methods and arrangements for improving and optimizing traffic communication across networks interconnecting such machines and devices.
Problems associated with computer network congestion have increased significantly in recent years. One cause of network congestion is inefficient routing topology. For example, if client A and client B live next door to each other and both need to access the same information stored on a server in Japan, both users must send identical requests to the server in Japan, and the server sends identical copies of the requested information to both clients. This effectively doubles the amount of bandwidth needed to service the two requests compared with client A requesting and receiving the information from Japan and client B requesting and receiving the information from client A.
This problem has a significant impact on both local-area and wide-area networks (LANs and WANs). If client A and client B are inside a LAN and request the same information outside the LAN, both issue identical requests, and force duplicated information to be sent through the LAN connections to the external world. This increases bandwidth usage on the external connection, increases processing loads on firewalls, routers, and proxy servers, and consequently increases the time to access the required information.
U.S. Pat. No. 5,884,031 attempts to solve this using a hierarchal topology wherein parent and child nodes are each responsible for passing information to child nodes. As such, child nodes may be disconnected from the data source if key parent computers are turned off, removed from the network, or disabled. The design of the ""031 patent also makes poor use of bandwidth and CPU resources because data is rebroadcast by each node to its children nodes, whether or not its child node actually needs the information. Accordingly, there is an outstanding need for a network architecture that makes more efficient use of computer resources and bandwidth.
This invention solves problems associated with prior-art approaches by providing a xe2x80x9cflatxe2x80x9d network architecture facilitating direct connections between computers and other machines and devices so that information may be retrieved more efficiently. In the preferred embodiment, agent software is loaded on each participating node, and this inventive software is sufficiently intelligent to share and relay information appropriately in accordance with user requests.
The invention is particularly advantageous in situations where communication bottlenecks are likely to occur, such as between corporate intranets and the Internet, in conjunction with requests to international servers, and in other configurations wherein only a limited number of data pipelines are available.
A method of accessing information in a client-server network architecture according to the invention includes the step of maintaining a database on the server which keeps track of where desired information is stored on the network. When such information is requested from the server, the database is queried to determine whether the information is available from one or more participating clients. If so, the information is provided to the requestor directly through the client(s).
According to the invention, this redirection of information is accomplished by storing agent software on each participating client. The agent is operative to inform the server that the client is storing at least a portion of the requested information, such that when the server queries the clients to determine the location of the information, the agents let the server know how much of the requested information they can make available to the requestor. Following this, the information is either provided to the requestor by the server instructing the client to deliver the information directly to the requestor or the address of the client is downloaded to the requester, enabling the requestor to link to one or more clients if the information is fragmented across the network.
The invention is not limited in terms of protocol or network topology. The named client and server machines can provide any conventional network services. To help ensure that requested information remains up-to-date, the server may keep track of clients cashing the information on a last-in, first-out basis. Nor is the invention limited in terms of its applicability to general-purpose computers, and may be used with telephones, personal communication devices, personal digital assistance, work stations, and other types of machines and devices, particularly when such machines and devices are interconnected to a local-area or wide-area network, whether through a physical or wireless communication infrastructure. Generally speaking, the invention is applicable to any type of system wherein otherwise scarce resources need to be optimized among participating devices or machines, or wherein participants would benefit from the optimization of resources used to enhance switching communication and/or performance.